namespace MockingBird.Simulator.Framework.Configuration
{


    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "HandlerConfiguration")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", IsNullable = false, ElementName = "HandlerConfiguration")]
    public partial class HandlerConfiguration
    {

        private string wsdlField;

        private HandlerConfigurationControlSettings controlSettingsField;

        private System.Collections.Generic.List<OperationMapEntryType> soapActionOperationMapField;

        private System.Collections.Generic.List<OperationMapEntryType> requestRootElementOperationMapField;

        private System.Collections.Generic.List<OperationType> operationsField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "Wsdl")]
        public string Wsdl
        {
            get
            {
                return this.wsdlField;
            }
            set
            {
                this.wsdlField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "ControlSettings")]
        public HandlerConfigurationControlSettings ControlSettings
        {
            get
            {
                return this.controlSettingsField;
            }
            set
            {
                this.controlSettingsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Map", IsNullable = false)]
        [System.Xml.Serialization.XmlArrayAttribute(ElementName = "SoapActionOperationMap")]
        public System.Collections.Generic.List<OperationMapEntryType> SoapActionOperationMap
        {
            get
            {
                return this.soapActionOperationMapField;
            }
            set
            {
                this.soapActionOperationMapField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Map", IsNullable = false)]
        [System.Xml.Serialization.XmlArrayAttribute(ElementName = "RequestRootElementOperationMap")]
        public System.Collections.Generic.List<OperationMapEntryType> RequestRootElementOperationMap
        {
            get
            {
                return this.requestRootElementOperationMapField;
            }
            set
            {
                this.requestRootElementOperationMapField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Operation", IsNullable = false)]
        [System.Xml.Serialization.XmlArrayAttribute(ElementName = "Operations")]
        public System.Collections.Generic.List<OperationType> Operations
        {
            get
            {
                return this.operationsField;
            }
            set
            {
                this.operationsField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "HandlerConfigurationControlSettings")]
    public partial class HandlerConfigurationControlSettings
    {

        private OperationInferenceStrategy operationInferenceStrategyField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "OperationNameInferenceStrategy")]
        public OperationInferenceStrategy OperationInferenceStrategy
        {
            get
            {
                return this.operationInferenceStrategyField;
            }
            set
            {
                this.operationInferenceStrategyField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "HandlerConfigurationControlSettingsOperationNameInferenceStrategy")]
    public enum OperationInferenceStrategy
    {

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "SoapAction")]
        SoapAction,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "QueryString")]
        QueryString,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "SoapActionOperationMap")]
        SoapActionOperationMap,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "RequestRootElementOperationMap")]
        RequestRootElementOperationMap,
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "XPathBasedResponsesType")]
    public partial class XPathBasedResponsesType
    {

        private System.Collections.Generic.List<XPathBasedResponseType> xPathBasedResponseField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("XPathBasedResponse")]
        public System.Collections.Generic.List<XPathBasedResponseType> XPathBasedResponse
        {
            get
            {
                return this.xPathBasedResponseField;
            }
            set
            {
                this.xPathBasedResponseField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "XPathBasedResponseType")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", IsNullable = true, ElementName = "XPathBasedResponseType")]
    public partial class XPathBasedResponseType
    {

        private string expressionField;

        private string resultField;

        private ResponseType responseField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "Expression")]
        public string Expression
        {
            get
            {
                return this.expressionField;
            }
            set
            {
                this.expressionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "Result")]
        public string Result
        {
            get
            {
                return this.resultField;
            }
            set
            {
                this.resultField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "Response")]
        public ResponseType Response
        {
            get
            {
                return this.responseField;
            }
            set
            {
                this.responseField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "ResponseType")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", IsNullable = true, ElementName = "ResponseType")]
    public partial class ResponseType
    {

        private ResponseBehaviourType responseBehaviourField;

        private string fileNameField;

        private ErrorType errorTypeField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(AttributeName = "ResponseBehaviour")]
        public ResponseBehaviourType ResponseBehaviour
        {
            get
            {
                return this.responseBehaviourField;
            }
            set
            {
                this.responseBehaviourField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(AttributeName = "FileName")]
        public string FileName
        {
            get
            {
                return this.fileNameField;
            }
            set
            {
                this.fileNameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(AttributeName = "ErrorType")]
        public ErrorType ErrorType
        {
            get
            {
                return this.errorTypeField;
            }
            set
            {
                this.errorTypeField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "ResponseBehaviourType")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", IsNullable = false, ElementName = "ResponseBehaviourType")]
    public enum ResponseBehaviourType
    {
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "Standard")]
        Standard,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "Error")]
        Error,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "Variable")]
        Variable,
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "ErrorType")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", IsNullable = false, ElementName = "ErrorType")]
    public enum ErrorType
    {

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "SoapFault")]
        SoapFault,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "Timeout")]
        Timeout,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "None")]
        None,
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "RequestHeaderType")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", IsNullable = true, ElementName = "RequestHeaderType")]
    public partial class RequestHeaderType
    {

        private System.Collections.Generic.List<string> xpathsField;

        private System.Xml.XmlElement responseHeaderXmlField;

        private string requestHeaderNameField;

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("HeaderValueXpath", IsNullable = false)]
        [System.Xml.Serialization.XmlArrayAttribute(ElementName = "Xpaths")]
        public System.Collections.Generic.List<string> Xpaths
        {
            get
            {
                return this.xpathsField;
            }
            set
            {
                this.xpathsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "ResponseHeaderXml")]
        public System.Xml.XmlElement ResponseHeaderXml
        {
            get
            {
                return this.responseHeaderXmlField;
            }
            set
            {
                this.responseHeaderXmlField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(AttributeName = "RequestHeaderName")]
        public string RequestHeaderName
        {
            get
            {
                return this.requestHeaderNameField;
            }
            set
            {
                this.requestHeaderNameField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "RequestSoapHeadersType")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", IsNullable = true, ElementName = "RequestSoapHeadersType")]
    public partial class RequestSoapHeadersType
    {

        private System.Collections.Generic.List<RequestHeaderType> echoRequestHeadersField;

        private string setResponseHeaderFromThisFilePathField;

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Match", IsNullable = false)]
        [System.Xml.Serialization.XmlArrayAttribute(ElementName = "EchoRequestHeaders")]
        public System.Collections.Generic.List<RequestHeaderType> EchoRequestHeaders
        {
            get
            {
                return this.echoRequestHeadersField;
            }
            set
            {
                this.echoRequestHeadersField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(AttributeName = "SetResponseHeaderFromThisFilePath")]
        public string SetResponseHeaderFromThisFilePath
        {
            get
            {
                return this.setResponseHeaderFromThisFilePathField;
            }
            set
            {
                this.setResponseHeaderFromThisFilePathField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "OperationType")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", IsNullable = true, ElementName = "OperationType")]
    public partial class OperationType
    {

        private RequestSoapHeadersType soapHeaderConfigurationField;

        private object itemField;

        private ItemChoiceType itemElementNameField;

        private string nameField;

        private ResponseStrategyType responseStrategyField;

        private string soapActionField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "SoapHeaderConfiguration")]
        public RequestSoapHeadersType SoapHeaderConfiguration
        {
            get
            {
                return this.soapHeaderConfigurationField;
            }
            set
            {
                this.soapHeaderConfigurationField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("DefaultResponse", typeof(ResponseType))]
        [System.Xml.Serialization.XmlElementAttribute("XPathBasedResponses", typeof(XPathBasedResponsesType))]
        [System.Xml.Serialization.XmlElementAttribute("XsltBasedResponse", typeof(ResponseType))]
        [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")]
        public object Item
        {
            get
            {
                return this.itemField;
            }
            set
            {
                this.itemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public ItemChoiceType ItemElementName
        {
            get
            {
                return this.itemElementNameField;
            }
            set
            {
                this.itemElementNameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(AttributeName = "Name")]
        public string Name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(AttributeName = "ResponseStrategy")]
        public ResponseStrategyType ResponseStrategy
        {
            get
            {
                return this.responseStrategyField;
            }
            set
            {
                this.responseStrategyField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(AttributeName = "SoapAction")]
        public string SoapAction
        {
            get
            {
                return this.soapActionField;
            }
            set
            {
                this.soapActionField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", IncludeInSchema = false, TypeName = "ItemChoiceType")]
    public enum ItemChoiceType
    {

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "DefaultResponse")]
        DefaultResponse,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "XPathBasedResponses")]
        XPathBasedResponses,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "XsltBasedResponse")]
        XsltBasedResponse,
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "ResponseStrategyType")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", IsNullable = false, ElementName = "ResponseStrategyType")]
    public enum ResponseStrategyType
    {

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "Default")]
        Default,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "XPath")]
        XPath,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "Xslt")]
        Xslt,

        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute(Name = "None")]
        None,
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", TypeName = "OperationMapEntryType")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:mockingbird.engine.business.configuration:handlerconfiguration", IsNullable = true, ElementName = "OperationMapEntryType")]
    public partial class OperationMapEntryType
    {

        private string keyField;

        private string operationNameField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(AttributeName = "Key")]
        public string Key
        {
            get
            {
                return this.keyField;
            }
            set
            {
                this.keyField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(AttributeName = "OperationName")]
        public string OperationName
        {
            get
            {
                return this.operationNameField;
            }
            set
            {
                this.operationNameField = value;
            }
        }
    }
}
